A computer, such as a personal computer, involves hardware and software. The software typically involves computer programs called xe2x80x9capplicationsxe2x80x9d and an xe2x80x9coperating system.xe2x80x9d The applications assist in the performance of specific tasks, such as word-processing, accounting, or inventory management. The operating system allocates the hardware resources of the computer among the various application programs. An example of an application is xe2x80x9cOUTLOOKxe2x80x9d Express, a contact database and communication tool available from Microsoft Corporation. Versions of xe2x80x9cOUTLOOKxe2x80x9d Express are available for use with different operating systems. For example, one version of xe2x80x9cOUTLOOKxe2x80x9d Express operates with the MAC OS 8 operating system available from Apple Computer Corporation, whereas another version of xe2x80x9cOUTLOOKxe2x80x9d Express operates with the xe2x80x9cWINDOWS NTxe2x80x9d operating system (xe2x80x9cWINDOWS NTxe2x80x9d) available from Microsoft Corporation.
FIG. 1 (Prior Art) is a simplified diagram of a computer screen 100 of a computer executing the xe2x80x9cOUTLOOKxe2x80x9d Express application program. Numerous icons, such as icons 110, appear on the screen. Each icon is associated with a different function. Icon 140 may, for example, retrieve the user""s mail and cause it to be displayed on the screen as a list of messages 150. A user uses a mouse 130 to select and activate an icon.
Consider a situation where two users want to read their mail using the version of xe2x80x9cOUTLOOKxe2x80x9d Express that operates with the Apple operating system. An address book application (e.g., the Now Contact application available from Qualcomm, Incorporated) is also running on the computer in another window. First, one user opens the xe2x80x9cOUTLOOKxe2x80x9d Express application, to read his mail for example. xe2x80x9cOUTLOOKxe2x80x9d Express prompts him for some personal identifier and then configures itself according to some previously defined user-specific settings. For example, xe2x80x9cOUTLOOKxe2x80x9d Express offers the user access to his own mail, contact list, and files. Then, after the first user is finished, the second user logs into the same xe2x80x9cOUTLOOKxe2x80x9d Express application using her personal identifier. xe2x80x9cOUTLOOKxe2x80x9d Express then reconfigures itself according to her previously defined settings. Mail subsequently retrieved using xe2x80x9cOUTLOOKxe2x80x9d Express is then mail directed to the second user. This change of user-specific settings does not require either of the two applications (xe2x80x9cOUTLOOKxe2x80x9d Express and the Qualcomm address book) be closed and restarted, but the change is limited to the xe2x80x9cOUTLOOKxe2x80x9d Express application. It is desired to be able to make one switch that would simultaneously affect multiple applications running on the computer (for example, the xe2x80x9cOUTLOOKxe2x80x9d Express application and the Qualcomm address book application).
Consider another situation where the same two users want to read their respective mail using the xe2x80x9cWINDOWS NTxe2x80x9d version of xe2x80x9cOUTLOOKxe2x80x9d Express. xe2x80x9cWINDOWS NTxe2x80x9d allows a computer to support different xe2x80x9cprofiles,xe2x80x9d each of which defines a particular user work-environment. Returning to the scenario in which two users share xe2x80x9cOUTLOOKxe2x80x9d Express, the first user could log into xe2x80x9cWINDOWS NTxe2x80x9d using a first profile. xe2x80x9cOUTLOOKxe2x80x9d Express, when opened, would then configure itself according to user-specific data associated with the first user""s profile. Thus, mail accessed would be the mail of the first user. Further, unlike the situation with the Apple operating system described above, multiple applications running on the xe2x80x9cWINDOWS NTxe2x80x9d operating system could receive user-specific settings from the new profile.
The second user could switch to her own profile so that she would be presented with her own mail when using xe2x80x9cOUTLOOKxe2x80x9d Express. Other profile-dependent programs would also configure themselves according to her previously defined preferences. Unfortunately, changing profiles in xe2x80x9cWINDOWS NTxe2x80x9d requires that all open applications be closed and reopened. This can be particularly burdensome when applications that maintain a dial-up network connection (such as xe2x80x9cOUTLOOKxe2x80x9d Express) must be closed. Closing the xe2x80x9cOUTLOOKxe2x80x9d Express application causes the dial-up network connection used by the program to be lost. Once lost, it may be difficult and time consuming to reestablish this dial-up connection.
In summary, the Apple operating system version of xe2x80x9cOUTLOOKxe2x80x9d Express allows user-specific settings to be changed within an application without exiting the application, but this change of settings only affects one application. xe2x80x9cWINDOWS NTxe2x80x9d allows user-specific settings to be changed for multiple applications but all open applications must be closed and then reopened in order to make the change.
The present invention addresses the above problems by providing an identity manager. The identity manager allows multiple users to share a single computer. Each user can uniquely benefit from the flexibility and personalization features of different applications by configuring each application to his or her liking. Configuration settings of all identity-aware applications are changed by simply notifying the computer of a change in identity of the user. One need not log out of or close down applications and reopen them under a different identity to change the user work environment.
An operating system registry contains multiple xe2x80x9cidentities.xe2x80x9d One of these identities is designated the current identity. An application executing on a multitasking computer system uses information stored in the current identity, for example, to configure the application""s user interface in a particular way. When an application opens, it registers with an identity manager. If the application has multiple threads, each of the threads may register. These registrations are made using objects conventionally known as xe2x80x9cconnection points.xe2x80x9d
To switch identities, the user supplies the name of an identity to switch to. The identity manager uses the registered connection points to query each of the applications for permission to switch identities. If all the registered connection points grant permission to switch identities, then the identity manager switches the current identity by changing information in the registry. The identity manager then notifies all applications via their registered connection points that a change has been made so that the applications can take appropriate action. Applications may, for example, retrieve information stored in the new current identity and reconfigure the application""s user interface in a different way. Accordingly, the identity used by multiple applications can be changed from a first identity to a second identity without closing any of the multiple applications. Where one of the applications maintains and uses a network connection (for example, a dial-up connection to the Internet), loss of the connection due to having to close the application when switching profiles is avoided. Applications that do not use identity-specific information do not register, are not queried, and are not affected by the change of identities.
This summary does not purport to define the invention. The invention is defined by the claims.